Conversation
There was a problem hiding this comment.
Pull request overview
This PR adds a new UptimeRobot plugin that surfaces monitor state, response times, and event logs into SquaredUp using the WebAPI base plugin. It defines the plugin metadata and UI, data streams and scripts for UptimeRobot’s API, import definitions, default scopes, and out-of-the-box dashboards.
Changes:
- Introduces the
UptimeRobotplugin metadata, UI configuration, and icon, wired to the WebAPI base plugin with API key-based access. - Adds data streams and associated transform scripts for monitors, latest states, response times, and event logs, plus an import definition for monitors.
- Provides default scopes and two dashboards (account overview and monitor perspective) to visualize monitor properties, states, downtime, and response times.
Reviewed changes
Copilot reviewed 15 out of 16 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
plugins/UptimeRobot/v2/ui.json |
Defines the plugin configuration UI to capture the UptimeRobot API key. |
plugins/UptimeRobot/v2/metadata.json |
Declares plugin metadata, WebAPI base configuration, links, keywords, and object types for UptimeRobot. |
plugins/UptimeRobot/v2/importDefinitions/default.json |
Configures the default object import step that maps UptimeRobot monitors into SquaredUp objects. |
plugins/UptimeRobot/v2/icon.svg |
Adds the square SVG icon used for the UptimeRobot plugin. |
plugins/UptimeRobot/v2/docs/README.md |
Provides setup documentation for obtaining and supplying the UptimeRobot read-only API key. |
plugins/UptimeRobot/v2/defaultContent/scopes.json |
Defines scopes for UptimeRobot monitors and the corresponding selection variable used by dashboards. |
plugins/UptimeRobot/v2/defaultContent/accountOverview.dash.json |
Adds the “Account Overview” dashboard summarizing monitor counts, states, and down monitors. |
plugins/UptimeRobot/v2/defaultContent/Perspectives/monitor.dash.json |
Adds the “Monitor” perspective dashboard showing latest state, properties, downtime, and response time history for a selected monitor. |
plugins/UptimeRobot/v2/dataStreams/scripts/responseTimes.js |
Flattens UptimeRobot monitor response_times into a row-per-sample data set with monitor labels. |
plugins/UptimeRobot/v2/dataStreams/scripts/monitors.js |
Transforms UptimeRobot monitor data into SquaredUp object rows with links, monitor URL, IDs, and typed source information. |
plugins/UptimeRobot/v2/dataStreams/scripts/latestStates.js |
Maps UptimeRobot monitor status codes to human-readable status/state values and adds dashboard links. |
plugins/UptimeRobot/v2/dataStreams/scripts/eventLogs.js |
Flattens and time-filters UptimeRobot monitor event logs and annotates them with monitor names. |
plugins/UptimeRobot/v2/dataStreams/responseTimes.json |
Configures the scoped HTTP data stream for monitor response times with paging and metadata. |
plugins/UptimeRobot/v2/dataStreams/monitors.json |
Configures the unscoped HTTP data stream for basic monitor discovery and object import. |
plugins/UptimeRobot/v2/dataStreams/latestStates.json |
Configures the scoped HTTP data stream for latest monitor states and their display metadata. |
plugins/UptimeRobot/v2/dataStreams/eventLogs.json |
Configures the scoped HTTP data stream for monitor event logs, including duration, reason code, and details. |
| @@ -0,0 +1,44 @@ | |||
| { | |||
| "name": "UptimeRobot", | |||
There was a problem hiding this comment.
The "name" field should be lowercase kebab-case to follow the established convention in the repository. It should be "uptime-robot" instead of "UptimeRobot". All other plugins in the repository use lowercase kebab-case for the name field (e.g., "phare", "rootly", "unifi", "google-sheets").
| "type": "password", | ||
| "name": "apiKey", | ||
| "label": "API key", | ||
| "help": "Provide an API key for your UptimeRobot account", |
There was a problem hiding this comment.
The help text should not state the obvious. Consider removing "Provide an" and starting with a verb or including a link to documentation. For example, similar to the Phare plugin, you could say "Create an API key in the UptimeRobot Settings" or simply provide a link without redundant text.
| "validation": { | ||
| "required": true | ||
| }, | ||
| "placeholder": "Enter UptimeRobot API key (read-only recommended)" |
There was a problem hiding this comment.
The placeholder text should follow the established pattern. Based on other plugins, it should be a shorter example (e.g., "Enter an API key" or "Enter the API key") or show a pattern if applicable (e.g., "rootly_xxxxxxxxx" in the Rootly plugin). The phrase "read-only recommended" is guidance that belongs in the help text, not the placeholder.
| "label": "Repository" | ||
| } | ||
| ], | ||
| "keywords": ["state", "monitoring", "remote", "pingdom", "url", "test", "response", "state", "rum", "user"], |
There was a problem hiding this comment.
The keyword "state" appears twice in the keywords array. Remove the duplicate entry.
|
|
||
| To obtain your UptimeRobot Read-Only API Key: | ||
|
|
||
| 1. Log in to your UptimeRobot account at https://uptimerobot.com |
There was a problem hiding this comment.
The link should use markdown link syntax for consistency. Instead of just the URL, use the format: "Log in to your UptimeRobot account".
🔌 Plugin overview
🖼️ Plugin screenshots
Plugin configuration
Default dashboards
🧪 Testing
N/A
N/A
📚 Checklist